<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 数组去重

    var arr = [1, 1, 1, 2, 2, 3, 4, 5, 6, 3, 4, 2, 4, 1];

    // 1 最笨的方法
    function unique1(arr) {
      for (var i = 0; i < arr.length; i++) {
        for (var j = i + 1; j < arr.length; j++) {
          if (arr[i] == arr[j]) {
            arr.splice(j, 1);
            j--;
          }
        }
      }
      return arr;
    }
    console.log(unique1(arr));

    // 2. 利用from
    function unique2(arr) {
      return Array.from(new Set(arr));
    }
    console.log(unique2(arr));

    //3. 利用 indexOf
    function unique3(arr) {
      if (!Array.isArray(arr)) {
        throw new Error('您传入的不是一个数组');
        return;
      }
      var newArr = [];
      for (var i = 0; i < arr.length; i++) {
        if (newArr.indexOf(arr[i]) === -1) {
          newArr.push(arr[i]);
        }
      }
      return newArr;
    }

    console.log(unique3(arr));

    // new Set
    var newArr = [...new Set(arr)];
    console.log(newArr);

  </script>
</body>

</html>